package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import java.util.Objects;

import com.fasterxml.jackson.databind.JsonNode;
import com.iwhalecloud.citybrain.flow.platform.manager.application.common.context.FlowElementProcessContext;

/**
 * @author lilh
 * @date 2020/11/16 16:22
 */
public interface CustomPropertiesProcessor {

    /**
     * 是否处理
     *
     * @param elementNode 任务节点flowElement
     * @return 是否处理
     */
    boolean support(JsonNode elementNode);

    /**
     * 处理
     *
     * @param context 处理上下文
     */
    void process(FlowElementProcessContext context);

    /**
     * 判断 jsonNode是否为空
     *
     * @param element 节点
     * @return 非空为true
     */
    default boolean nonNull(JsonNode element) {
        return Objects.nonNull(element) && !(element.isNull());
    }
}
